Книги-online
Ch 19.htm
назад
|
содержание
|
вперед
Взаимодействие Internet-приложений
с базами данных
Усложним наш пример. Теперь при
первом обращении к ASP-странице будем отображать содержимое таблицы customer
базы данных, а при нажатии на кнопку
Добавить
будем посылать все ту же
форму для ввода данных о покупателе, однако полученные результаты будем заносить
опять же в базу данных.
Для доступа к базе данных будем
использовать технологию ADO, поэтому откройте окно
References
нашего
проекта и добавьте ссылки на библиотеки Microsoft ActiveX Data Objects 2.1 Library
и Microsoft ActiveX Data Objects Recordset 2.0 Library (рис. 19.17).
Рис. 19.17.
Добавление ссылок
на библиотеки ADO
Теперь нам потребуется обрабатывать
событие webciass_initialize для выполнения операций соединения с базой данных
и открытия Recordset и событие WebClass_Terminate для закрытия объектов Recordset
иConnection.
Подпрограмма viewCustomers () будет
посылать Web-браузеру в виде HTML-потока содержимое таблицы Customer базы данных,
а также размещать объект типа Submit, при нажатии на который будет производиться
вызов формы для ввода информации и последующего добавления новой записи о покупателе.
Ранее мы уже говорили о таком способе отправки информации на Web-сервер. В данном
случае никакой информации отправлено не будет, нам важно только то, чтобы сервер
получил запрос с параметром begininput и передал Web-браузеру шаблон для ввода
информации о покупателе.
Обработка события webciass_BeginRequest
изменена таким образом, чтобы при первом обращении показывать содержимое таблицы
Customer и кнопку
Добавить,
при обращении к ASP-странице с параметром
inputCustomer принимать информацию и добавлять полученные сведения в базу данных,
а при обращении с параметром begininput предоставлять форму для ввода информации
о покупателе:
Option Explicit
Option Compare Text
Dim mcnnCustomer As ADODB.Connection
Dim mrstCustomer As ADODB.Recordset
Private Sub WebClass_BeginRequest()
If Request.QueryString.Count >
0 Then
'получены данные
If Request.QueryString.Item(1) =
"ihputCustomer" Then
'записать полученные данные в таблицу
With mrstCustomer
.AddNew
.Fields("ccompany").Value
= Request.Form("txtccompany")
.Fields("clastname").Value
= Request.Form("txtclastname")
.Fields("cfirstname").Value
=
Request.Form("txtcfirstname")
. Fields ("csecondnairie")
.Value =
Request.Form("txtcsecondname")
. Fields("czip").Value
=
Request.Form("txtczip")
. Fields("ccountry").Value
=
Request.Form("txtccountry")
.Fields("cregion").Value
= Request.Form("txtcregion")
.Fields("ccity").Value
=
Request.Form("txtccity")
.Fields("caddress").Value
=
Request.Form("txtcaddress")
.
Update
End With
ViewCustomers
End If
'запрос на добавление записи
If Request.QueryString.Item (1)
= "begininput" Then
'отобразить форму для ввода
Customer.WriteTemplate
End If
Else
ViewCustomers
End If
End Sub
'просмотр всех записей
Private Sub ViewCustomers ()
With Response
.Clear
.Write "<HTML>"
.Write "<P align=center>
Список покупателей </Р>"
.Write "<FORM NAME=frmOutputCustomer
METHOD=POST ACTION=default.html?mode=begininput>"
.Write "<INPUT name=btnAdd
type=submit уа1ие=Добавить>"
If Not (mrstCustomer.BOF And mrstCustomer.EOF)
Then
mrstCustomer.MoveFirst
.Write "<TABLE border=l>"
.Write "<TR>"
.Write "<TD><P align=center>
Компания </TD>"
.Write "<TD><P align=center>
Фамилия </TD>"
.Write "<TD><P align=center>
Имя </TD>"
.Write "<TD><P align=center>
Отчество </TD>"
.Write "</TR>"
Do Until mrstCustomer.EOF
.Write "<TR>"
.Write "<TD>" &
mrstCustomer.Fields("ccompany") & "</TD>"
.Write "<TD>" &
mrstCustomer.Fields("clastname") & "</TD>"
.Write "<TD>" &
nirstCustomer.Fields("cfirstname") & "</TD>"
.Write "<TD>" &
mrstCustomer.Fields("csecondname") & "</TD>"
.Write "</TR>"
mrstCustomer.MoveNext
Loop
.Write "</TABLE>"
End If
.Write "</FORM>"
.Write "</HTML>"
End With
End Sub
Private Sub WebClass_Initialize
()
Set mcnnCustomer = New ADODB.Connection
mcnnCustomer.CursorLocation
=
adUseClient
mcnnCustomer.Provider = "SQLOLEDB.1"
mcnnCustomer.CommandTimeout = 300
"строка для соединения, имя
пользователя, пароль
mcnnCustomer.Open "Data Source=
MYSERVER; Initial Catalog=SALES", "SYSADM", "SYSADM"
Set mrstCustomer = New ADODB.Recordset
mrstCustomer.Open "Customer",
mcnnCustomer, adOpenKeyset,
adLockOptimistic,
adCmdTable
End Sub
Private Sub WebClass Terminate()
mrstCustomer.Close
Set mrstCustomer
=
Nothing
mcnnCustomer.Close
Set mcnnCustomer = Nothing
End Sub
Запустите проект. Перед вами достаточно
простое Internet-приложение, обменивающееся информацией с базой данных и предоставляющее
пользователю Web интерактивные средства для работы с этой информацией.
Замечание
Реальные Internet-приложения гораздо
сложнее. Однако в нашем примере мы попытались дать тот минимальный материал,
который поможет вам в дальнейшем при освоении принципов проектирования для
World Wide Web.
назад
|
содержание
|
вперед